package com.utils;

import com.google.gson.JsonArray;
import com.google.gson.JsonIOException;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.JsonSyntaxException;

public class ReadJSONNetEase {
	/**
	 * 通过解析器将test.json转换成JsonObject
	 * 
	 * @param args
	 */

	// 将 test.json 的数据转换成 JSON 对象
	// 需要创建一个解析器，可以用来解析字符串或输入流
	private static JsonParser parser = new JsonParser();
	private static JsonObject subObject = new JsonObject();

	public static JsonObject parseJSON(String testJSON) {
		try {
			System.out.println("netease JSON length" + testJSON.length());
			// 创建一个JSON对象，接收parser解析后的返回值
			// 使用parse()方法，传入一个Reader对象，返回值是JsonElement类型
			// 因为要读取文件，所以传入一个FileReader
			// JsonObject是JsonElement的子类，所以需要强转
			// 有异常抛出，使用 try catch 捕获
			JsonObject object = (JsonObject) parser.parse(testJSON);
			// 先将两个外部的属性输出 category 和 pop
			// 先 get 到名称（键），返回的是 JsonElement，再 getAs 转换成什么类型的值
			// 依据 json 格式里的数据类型
//			System.out.println("status=" + object.get("status").getAsString());
//			System.out.println("error_code=" + object.get("error_code").getAsString());
			// 接着读取test.json里的JSON数组，名称是languages（键）
			// 创建一个JsonArray
			JsonObject result = object.get("result").getAsJsonObject();
			JsonArray songs = result.get("songs").getAsJsonArray();
			for (int i = 0; i < songs.size(); i++) {
				subObject = songs.get(i).getAsJsonObject();
			}
		} catch (JsonIOException e) {
			e.printStackTrace();
		} catch (JsonSyntaxException e) {
			e.printStackTrace();
		}
		return subObject;
	}
}
